An information processing system that provides continuous services to clients by establishing sessions with the clients is already known. An information processing system that includes multiple servers, which provide services to clients, and a message relay device, which distributes messages from the clients to each server, is a known example of such an information processing system.
In the following, first, an information processing system that provides a continuous service to a client by establishing a session with the client will be described with reference to FIG. 33. FIG. 33 is a schematic diagram illustrating a process for establishing a session. In the example illustrated in FIG. 33, a client 70 transmits a request message to a server 71.
Then, the server 71 stores therein, in an associated manner, a session ID #12 indicating a session established with the client 70 and session data used to provide a continuous service to the client 70. Then, the server 71 transmits a response message containing therein the created session ID #12 to the client 70.
At this point, the client 70 transmits, to the server 71, a request message that contains the session ID #12 and that is the subsequent message. Then, by using session data #12 that is associated with the session ID #12 contained in the request message, the server 71 transmits a response message to the client 70, thereby providing a continuous service.
In this information processing system, if the number of clients increases, it is difficult to provide a continuous service using a single server. Consequently, there is a known message relay device that distributes the load applied to each server by distributing requests from clients to multiple servers.
In the following, a message relay device that distributes the load applied to each server by distributing requests to multiple servers will be described with reference to FIG. 34. FIG. 34 is a schematic diagram illustrating a technology performed by a message relay device. In the example illustrated in FIG. 34, a message relay device 72 includes message relay information 73, in which a session ID is associated with a server that has established a session. When the message relay device 72 receives a message from a client, the message relay device 72 recognizes, by using the message relay information 73, a server that is associated with the session ID contained in the message and transmits the message to the recognized server.
In the example illustrated in FIG. 34, the message relay device 72 stores therein, in an associated manner, a session ID #11 and an address of the server 71. If the message relay device 72 receives a message containing the session ID #11 from the client 70, the message relay device 72 transfers the message to the server 71, thereby guaranteeing uniqueness of the server to which the message is distributed.
At this point, if the number of servers providing services increases, the processing load applied to the message relay device also increases, which may sometimes cause a bottleneck in the distribution of messages. Consequently, there is a known information processing system in which multiple message relay devices have the same message relay information and distribute messages received from clients to each message relay device.
FIG. 35 is a schematic diagram illustrating an information processing system that includes multiple message relay devices. In the example illustrated in FIG. 35, the information processing system includes the message relay device 72, which stores therein the message relay information 73, and a message relay device 76, which stores therein message relay information 77. Furthermore, the information processing system also includes a load balancer 78 that distributes, in accordance with a Level (L) 3-L4 header, messages from the clients to the message relay devices 72 and 76.
For example, if a session ID contained in a message distributed from the load balancer 78 is not present in the message relay information 73 or if a session ID is not contained in a message, the message relay device 72 transfers the message to an arbitrary server. Then, when the message relay device 72 receives both a response and the session ID from the server to which the message has been transferred by the message relay device 72, the message relay device 72 stores, in an associated manner in the message relay information 73, the session ID and the address of the server to which the message has been transferred.
Furthermore, the message relay device 72 transmits data on the message relay information 73 to the message relay device 76 and synchronizes the message relay information 73 with the message relay information 77. Then, the message relay device 72 transfers the response and the session ID received from the server to the client, which is the issue source of the message, via the load balancer 78. Consequently, because each piece of the message relay information 73 and 77 has the same content, the message relay devices 72 and 76 guarantee the uniqueness with which messages having the same session ID are distributed to the same server.
In the following, the flow of a process, performed by a message relay device, for transferring a response from a server to a client will be described with reference to FIG. 36. FIG. 36 is a flowchart illustrating the flow of an example of a process for transferring a response. For example, a message relay device receives a response (Step S1). Then, the message relay device extracts a session ID from the received response (Step S2) and determines whether the response has a session ID (Step S3).
If the message relay device determines that the response contains the session ID (Yes at Step S3), the message relay device searches for the message relay information by using the session ID as a key (Step S4). Then, the message relay device determines whether a search result contains a hit (Step S5). If the search result contains a hit (Yes at Step S5), the message relay device transfers the response to the client (Step S9).
In contrast, if the search result does not contain a hit (No at Step S5), the message relay device updates the message relay information (Step S6). Then, so that the update result is reflected in the other message relay devices, the message relay device distributes the message relay information to the other message relay devices (Step S7).
Then, the message relay device determines whether the message relay information is distributed to all of the message relay devices (Step S8). If the message relay information is distributed to all of the message relay devices (Yes at Step S8), the message relay device transfers the response to the client (Step S9) and ends the process. If the response does not contain the session ID (No at Step S3), the message relay device transfers the response to the client without updating the message relay information (Step S9) and ends the process.    Patent Document 1: Japanese Laid-open Patent Publication No. 2003-296289    Patent Document 2: Japanese Laid-open Patent Publication No. 2000-090024
However, with the technology in which each message relay device synchronizes message relay information, a message is transferred to a client after synchronizing the message relay information stored in each of the message relay devices every time a new session is established. Consequently, if a session of a service provided to the client is more frequently updated, the message relay devices need to more frequently synchronize the message relay information, thus reducing the throughput and performance of the information processing system, which is a problem.
To improve the throughput of the message relay devices, it may also be possible to use a method in which multiple message relay devices store therein message relay information by dividing the information into multiple pieces. For example, the message relay devices each store therein different pieces of message relay information each piece of which contains a different session ID. If a session ID of a received message is not contained in its own message relay information, the message relay device transfers the message to another message relay device and the message is transferred to the server from the message relay device that corresponds to the transfer destination. Alternatively, it may also be possible to use a method in which a message relay device identifies the destination server by sending, to another message relay device, a query about a server that is associated with the session ID of the message.
However, if the size of a message is large, the processing load at the time of message transmission increases. Consequently, with the method in which multiple message relay devices store therein information by dividing the information into multiple pieces, if the size of a message is large, the throughput of a message relay device decreases, thus reducing the performance of the information processing system.